XML-RPC を使って更新 Ping を送信する機能をこのブログに実装してみました。
■ 更新 Ping とは?
ブログの更新をブログ検索サイト(Google のブログサーチとかテクノラティとか)に伝えるときに送信するメッセージのことです。これを送信すると、検索サイト(情報サイト)は、新着情報にそのブログの最新記事を載せてくれます。
■ メカニズム
検索サイトなどでは、更新 Ping を受け付けるための Web サービス(XML-RPC)を公開しているので、ブログからはその Web サービスを実行すればよいということになります。
※ weblogUpdates という統一規格があるようです。
ちなみに、REST 形式(POX over HTTP 形式)の Web サービスを公開しているサイトもあるので、XML-RPC 以外の方法も存在します。
■ 実装コード
require 'xmlrpc/client'
server = XMLRPC::Client.new2('http://pingoo.jp/ping/')
server.call("weblogUpdates.ping", 'あかさたのページ',
'http://www.rmake-labo.com/akasata/')
Web サービスを公開しているサイトとして、「http://pingoo.jp/ping/」を指定していますが、これは
Pingoo! というサイトで、テクノラティなど有名な更新 Ping 受信サイトに更新 Ping を再転送してくれるサービスです。このサービスを使うと、更新 Ping を受け付けるサーバを一つ一つ調べる必要がないので楽です。
■ 動作の説明
動作としては、次のとおりです。
1. XML-RPC で更新ブログ名と URL 名を伝える
2. Pingoo! は、送信元ブログを参照して RSS を取得し、最新の更新情報を取得する(※)
3. Pingoo! は登録してある更新 Ping を受け付けるサーバに最新情報を送信する
※ このため、送信元ブログの HTML のヘッダには、以下のような RSS を指定するコードを実装しておく必要があります。